package pe.com.cotelasa.scp.dominio.service;

import java.util.*;
import pe.com.cotelasa.scp.dominio.common.ResultadoServicio;
import pe.com.cotelasa.scp.dominio.common.ResultadoValidacion;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.entidad.DetalleOrdenCompraServicio;
import pe.com.cotelasa.scp.entidad.OrdenCompraServicio;

public interface IServicioDetalleOrdenCompraServicio {

    public Collection<DetalleOrdenCompraServicio> listarDetalleOrdenCompraServiciosActivos() throws ServiceException;

    public DetalleOrdenCompraServicio conseguirDetalleOrdenCompraServicioPorId(Integer idDetalleOrdenCompraServicio) throws ServiceException;

    public Collection<DetalleOrdenCompraServicio> listarTodosDetalleOrdenCompraServicios() throws ServiceException;

    public ResultadoValidacion validarDetalleOrdenCompraServicio(DetalleOrdenCompraServicio detalleOrdenCS) throws ServiceException;

    public ResultadoServicio guardarDetalleOrdenCompraServicio(DetalleOrdenCompraServicio detalleOrdenCS) throws ServiceException;

    public ResultadoServicio actualizarDetalleOrdenCompraServicio(DetalleOrdenCompraServicio detalleOrdenCS) throws ServiceException;

    public Collection<DetalleOrdenCompraServicio> listarDetalleOrdenCompraServiciosPorFiltro(DetalleOrdenCompraServicio detalleOrdenCS) throws ServiceException;

    public List<DetalleOrdenCompraServicio> listarDetallesPorOrden(OrdenCompraServicio ordenCS) throws ServiceException;
    
    public List<DetalleOrdenCompraServicio> listarDetallesParaReporteOC(DetalleOrdenCompraServicio detalle, String ordenar, Date fechaInicio, Date fechaFinal)throws ServiceException;
    
    public List<DetalleOrdenCompraServicio> listarDetallesParaReporteOS(DetalleOrdenCompraServicio detalle, String ordenar, Date fechaInicio, Date fechaFinal)throws ServiceException;
    
    public List<DetalleOrdenCompraServicio> buscarDetalleOrdenCSReporte(DetalleOrdenCompraServicio detalle, String[] listaEstado, Date fechaInicio, Date fechaFinal) 
            throws ServiceException;
    
}
